const http = require('http') //导入http模块

const req = http.request(//发送一个请求,类似于ajax,但绝对不是ajax,是一个非常纯粹的http请求
    //第一个参数传入url地址
    'http://www.baidu.com',
    //第二个参数传入一个对象,对象中可以传入一些配置
    {
        method: 'GET', //请求方法,默认是GET
        headers: {//请求头,可以传入一些配置
           'Content-Type': 'application/json'
        },
    },
    //第三个参数传入一个回调函数,回调函数中可以传入一个参数,参数是一个对象(响应结果),对象中包含响应头,响应体,响应状态码
    (res) => { //res包含一些方法和属性,是服务端给我们的结果
        console.log('服务器响应的状态码',res.statusCode) //响应状态码
        console.log('服务器响应的头',res.headers) //响应头
        //console.log('服务器响应的体',res.body) //响应体不能获取,服务器的响应结果可多可少,有可能响应一个文件,不可能将文件全部获取到内存中
        //因此响应体是通过流的方式获取的,流是异步的,因此需要使用data事件来获取响应体
        let result = ''
        res.on('data',(chunk)=>{
            result += chunk.toString('utf-8')
        })
        res.on('end',()=>{ // res的end事件,当服务器响应结束,服务器响应体的内容已经全部获取完毕
            console.log('服务器响应结束,服务器响应体的内容已经全部获取完毕')
            console.log('服务器响应体的内容',result)
        })
    }
)

//req是一个request对象,实际上他是一个可写流,可以往request中写数据,写完之后调用request.end()方法结束请求
// req.write('hello world') //写入数据,这里的数据会写入到request中,但是不会发送出去,需要调用request.end()方法结束请求
req.end() //结束请求






